import 'package:adaptive_dialog/adaptive_dialog.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:flutter_slidable/flutter_slidable.dart';

import 'index.dart';

/// tabbr高度
const kTabbarHeight = 48.0;

/// 头部高度
const kHeaderHeight = 200.0;

class WalletController extends GetxController with GetTickerProviderStateMixin {
  WalletController();

  final state = WalletState();

  /// 状态栏高度
  double statusBarHeight = MediaQuery.of(Get.context!).padding.top;

  /// 在 widget 内存中分配后立即调用。
  @override
  void onInit() {
    super.onInit();
  }

  /// 在 onInit() 之后调用 1 帧。这是进入的理想场所
  @override
  void onReady() {
    super.onReady();
  }

  /// 在 [onDelete] 方法之前调用。
  @override
  void onClose() {
    super.onClose();
  }

  /// dispose 释放内存
  @override
  void dispose() {
    super.dispose();
  }

  /// 滑动删除
  void handleRemoveItem(int index, BuildContext context) async {
    final OkCancelResult res = await showOkCancelAlertDialog(
      context: Get.context!,
      title: '删除',
      message: '确定要删除吗？',
      okLabel: '确定',
      cancelLabel: '取消',
      style: AdaptiveStyle.iOS,
    );

    if (res == OkCancelResult.ok) {
      state.recordList.removeAt(index);
      update(['record_list']);
    } else {
      // ignore: use_build_context_synchronously
      Slidable.of(context)?.close();
    }
  }
}
